/**
 * @Copyright:Copyright (c) 2007 - 2023
 * 
 */
package com.tengtong.commons.json;

import java.util.Map;

import com.tengtong.commons.json.impl.DefaultJsonsImpl;
import com.tengtong.commons.json.impl.MapJsonImpl;

/**
 * 工具类
 *
 * @author lin_jinming
 * @since: v1.0
 */
public class JsonTools {

    /**
     * 如果 o 为null 返回一个默认的实现 <br>
     * 
     * 如果 o 为 Json 则直接返回，如果是一个 Map，返回默认实现。
     *
     * @param o
     * @return
     */
    @SuppressWarnings("unchecked")
    public static Json ofObject(Object o) {
        if(o == null) {
            return MapJsonImpl.of();
        }
        if(o instanceof Json json) {
            return json;
        }
        if(o instanceof Map m) {
            return MapJsonImpl.of(m);
        }
        return null;
    }

    public static Jsons ofJsons(Json s) {
        if(s == null) {
            return DefaultJsonsImpl.of();
        }
        
        return DefaultJsonsImpl.of(s);
    }
}
